This invention relates to the field of data processing, and, more particularly, to an improved data processing system having means for dynamically managing channel paths while the data processing system is running.
Large computing systems are commercially available which are constructed in accordance with the IBM Enterprise Systems Architecture ESA/390 and operate under IBM multiple virtual storage (MVS) operating system. Such architecture is described in the publication "ENTERPRISE SYSTEMS ARCHITECTURE/390, PRINCIPLES OF OPERATION", form SA22-7201-0, published by IBM Corporation, copyright 1990,1991. This publication is hereby incorporated herein by reference and may be referred to for details not described in this specification.
ESA/390 systems generally comprise one or more central processing units (CPUs), operator facilities, a channel subsystem, and input/output (I/O) devices, the latter being connected to the channel subsystem through control units. The connections between the channel subsystem and the control units are referred to as channel paths. The channel paths may extend through and be routed by switches. An "I/O configuration" comprises channel paths, control units, I/O devices, and their connections including any switches.
A channel subsystem directs the flow of information between I/O devices and main storage. The channel subsystem uses one or more channel paths as the communication link in managing the flow of information to and from I/O devices. As part of I/O processing, the channel subsystem also performs a path management function of testing for channel path availability, selecting an available channel path, and initiating execution of the operation with an I/O device. The channel subsystem also includes subchannels, there being one subchannel for each I/O device. Each subchannel is dedicated to an I/O device and stores information controlling operation of such device.
Multiple I/O devices may be attached to a single control unit. Multiple control units may be attached to a single channel path. Control units may be attached to a channel subsystem by more than one channel path, and an I/O device may be attached to more than one control unit. An individual I/O device may be accessible to the channel subsystem through as many as eight different channel paths. A dynamic switch can be connected to either the same or different channel subsystems and to multiple control units. There thus exists numerous choices and variations concerning how a particular system may be configured.
The physical equipment is referred to as the "installation". A device is considered "installed" when it is mechanically and electrically connected into the system. However, the mere fact that a device is installed does not mean that it is configured into the system. As the term is used herein, "configuration" means not only the physical connections but also the channel subsystem and software settings and information which allow the equipment to be operated under the control of the operating system.
In operation, an ESA/390 data processing system typically runs a variety of workloads. Each workload performs best when the I/O configuration is tailored to meet the needs of such workload. The act of defining an optimal I/O configuration is costly and requires a great deal of system programmer's time and skills. The resulting I/O configuration may in fact be a best guess rather that an optimal solution. Additional complications arise from the fact than any single workload has variations both in time and in nature. Furthermore, most installations do not run a single workload. Various workloads may be run throughout the day placing different requirements on the computing resources. For example, short transactions may be most prevalent during midday while long running backups may be run at night thus producing different mixes of workloads. It is likely that some workload changes are more frequent than changes in work shift. The requirements of different workloads tend to conflict thereby complicating the act of defining the best I/O configuration.
I/O configuration definitions are commonly made by a system programmer who analyzes customer workloads and device and channel path utilizations. A configuration is selected which handles a typical workload, and various I/O devices are installed and initialized. In the past, once the I/O configuration was defined and installed, it was fixed and could not be changed except by repeating the process. To improve upon such process, a dynamic I/O configuration change facility was developed which allows an installation to be more easily changed to new I/O configurations. Such facility is disclosed in the above-identified related applications. Typically, in accordance with such facility, a system programmer defines various I/O configurations that can be used to support different workloads. This allows a system programmer to specify a best guess I/O configuration for a period of time given prior knowledge of the workload. The problem still remains that a system programmer must define an I/O configuration for each particular workload or group of workloads. The human involvement of a system programmer precludes making frequent adjustments especially when the workload is unpredictable, and it still requires skills and preplanning. The effort required to plan an I/O configuration when enhancing capacity is similar to that needed to run different workloads. Bottlenecks and shortages must be identified. New I/O devices may be necessary. Analysis must be performed to determine how the I/O configuration is to be modified to remove bottlenecks and make efficient use of additional I/O devices.
In summary, I/O configuration definitions are customarily made by system programmers using their skills and judgements, which may be aided by making observations and measurements of system operations and analyzing the results. Such definitions are made when a system is initially configured and when changes are made to add, delete or modify existing installations. The invention is designed to reduce the degree of system programmer involvement by managing and automatically reconfiguring channel path assignment in the I/O configuration in accordance with changes in the system workload.
The general idea of measuring some form of system workload and managing some system resources, is not new. U.S. Pat. No. 3,702,006- J. B. Page discloses a "METHOD FOR BALANCING THE UTILIZATION OF INPUT/OUTPUT DEVICES" in which measurements are made of I/O utilization for current tasks, and a data set is allocated to an I/O device based on least I/O device utilization as determined from the measurements. The patented invention attempts to select a device on which to place a new dataset in anticipation of an activity. The patented invention differs from the present invention in a number of ways. It does not alter the system configuration in any manner. Once a selection is made, the binding of the data set to a device is static. The mechanism described in the patent cannot do anything if its anticipatory allocation is incorrect, i.e., if the activity placed on the newly allocated dataset is higher than anticipated in which case performance will be degraded. Furthermore, the patented invention applies only to certain device types, namely direct access storage devices (DASD). Additionally, it only applies to a subset of operations, namely allocation of new datasets. When a dataset being allocated already exists, it can only be allocated on the device on which it already has been placed. Thus, the mechanisms described do not apply and no balancing occurs for the usage of devices other than DASD or for pre-existing data sets, and the mechanisms are static and cannot react to incorrect anticipatory decisions. The present invention supports all device types and also supports both new datasets and preexisting datasets. The subject invention processes by reacting to dynamically changing activity and altering the I/O configuration accordingly to provide balancing and additional channel bandwidth capability to those control units which require it at any instant. Thus, anticipatory decisions made by the present invention are not permanent and can adjust to incorrect anticipation.